package com.xoms.admin.persist.dao;

import java.util.List;

import com.xoms.admin.model.ProStockInBean;
import com.xoms.admin.model.ProStockInDetailBean;
import com.xoms.admin.model.vo.AuditStockInBean;
import com.xoms.admin.model.vo.BatchStockInBean;
import com.xoms.admin.model.vo.ProStockInVo;

/**
 * 入库单
 * @author admin
 *
 */
public interface ProStockInDao {
	
	/**
	 * 查询入库单数量
	 * @param key
	 * @param storeHouseId
	 * @param endTime 
	 * @param startTime 
	 * @return
	 */
	int selectCount(String key, String storeHouseId, String startTime, String endTime);

	/**
	 * 获取入库单列表
	 * @param key
	 * @param page
	 * @param pagesize
	 * @param startTime
	 * @param endTime
	 * @param storeHouseId
	 * @return
	 */
	List<ProStockInBean> selectList(String key, int page, int pagesize,
			String storeHouseId,String startTime,String endTime);

	/**
	 * 查询入库详情数量
	 * @param key
	 * @param stockInid
	 * @return
	 */
	int selectDetailCount(String key, String stockInId);
	
	/**
	 * 获取入库详情列表
	 * @param key
	 * @param page
	 * @param pagesize
	 * @param stockInid
	 * @return
	 */
	List<ProStockInDetailBean> selectDetailList(String key, int page, int pageSize, String stockInId, int paging);
	
	/**
	 * 查询当前type类型下当年最高订单编号，新建+1
	 * @param type
	 * @return
	 */
	String selectMaxNoByTypeInYear(int type);
	
	/**
	 * 新建入库单
	 * @param data
	 * @return
	 */
	int insert(ProStockInBean data);
	
	/**
	 * 修改入库单
	 * @param data
	 * @return
	 */
	int update(ProStockInBean data);
	
	/**
	 * 根据sid 删除入库单
	 * @param sid
	 * @return
	 */
	int del(String sid);

	/**
	 * 根据id返回入库单信息
	 * @param sid
	 * @return
	 */
	ProStockInBean selectOneById(String sid);
	
	/**
	 * 批量更新入库单信息
	 * @param batch
	 * @return
	 */
	int replaceBatchDetail(List<BatchStockInBean> batch);
	
	/**
	 * 删除入库单关联的详情信息
	 * @param sid
	 * @return
	 */
	int delDetails(String sid);
	
	/**
	 * 更新入库更新状态
	 * @param stockInId
	 * @param status
	 * @return
	 */
	int updateSubmitStatus(String stockInId, int status);
	
	/**
	 * 根据商品id查询对应仓库商品库存信息
	 * @param storeHouseId 
	 * @param lists
	 * @return
	 */
	List<ProStockInVo> selectProductListByIds(String stockInId);
	
	/**
	 * 获取入库审核详情
	 * @param aid
	 * @return
	 */
	AuditStockInBean selectAuditStockInDetailsById(String aid);

	
}
